home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / lib / ubiquity / localechooser / post-base-installer < prev    next >
Text File  |  2008-10-29  |  2KB  |  80 lines

  1. #! /bin/sh
  2.  
  3. set -e
  4.  
  5. . /usr/share/debconf/confmodule
  6.  
  7. db_get debian-installer/locale
  8. LOCALE="$RET"
  9.  
  10. # Set locale to C if it has not yet been set
  11. # This can happen during e.g. s390 installs where localechooser is not run
  12. [ "$LOCALE" ] || LOCALE="C"
  13.  
  14. if [ "$LOCALE" != "C" ]; then
  15.     db_get debian-installer/language
  16.     LANGLIST="$RET"
  17. fi
  18.  
  19. EXTRAS=""
  20. if db_get localechooser/supported-locales; then
  21.     EXTRAS="$(echo "$RET" | sed 's/,//g')"
  22. fi
  23.  
  24. LANGUAGE="${LOCALE%%_*}"
  25.  
  26. # Enable translations
  27. if [ "$LOCALE" != "C" ] || [ "$EXTRAS" ]; then
  28.     apt-install locales || true
  29. fi
  30.  
  31. # Set global locale and language, and make sure the glibc locale is
  32. # generated.
  33. DESTFILE="/target/etc/default/locale"
  34. if [ -e $DESTFILE ]; then
  35.     sed -i 's/^# LANG=$/LANG=\"'"$LOCALE"'\"/' $DESTFILE
  36.     # We set LANGUAGE only if the languagelist is a list of
  37.     # languages with alternatives. Otherwise, setting it is useless
  38.     if echo "$LANGLIST" | grep -q ":"; then
  39.         sed -i 's/^# LANGUAGE=$/LANGUAGE=\"'"$LANGLIST"'\"/' $DESTFILE
  40.     fi
  41. fi
  42. # Fallback in case the file wasn't provided by locales, or the format
  43. # changed.
  44. if [ ! -e "$DESTFILE" ] || ! grep -q '^LANG=' $DESTFILE; then
  45.     echo "LANG=\"$LOCALE\"" >> $DESTFILE
  46.     if echo "$LANGLIST" | grep -q ":"; then
  47.         echo "LANGUAGE=\"$LANGLIST\"" >> $DESTFILE
  48.     fi
  49. fi
  50.  
  51. # For languages that have no chance to be displayed at the Linux console
  52. # let's set root's environment with a non localized environment
  53. ROOTPROFILE="/target/root/.profile"
  54. # We must map the language to its "level" from languagelist
  55. LANGUAGECODE=`echo $LOCALE|cut -f1 -d_`
  56. # For language with multiple entries such as pt/pt_BR or zh_CN/zh_TW
  57. # we don't really care about the entry we will match as the level will always
  58. # be the same
  59. LEVEL=`cat /usr/lib/ubiquity/localechooser/languagelist |\
  60.     cut -f 2-3 -d\; | \
  61.     grep "$LANGUAGECODE" | \
  62.     head -n 1 | \
  63.     cut -f1 -d\;`
  64. if [ "$LEVEL" = "3" ] || [ "$LEVEL" = "4" ]; then
  65.     echo "# Installed by Debian Installer:" >>$ROOTPROFILE
  66.     echo "#  no localization for root because $LOCALE" >>$ROOTPROFILE
  67.     echo "#  cannot be properly displayed at the Linux console" >>$ROOTPROFILE
  68.     echo "LANG=C" >>$ROOTPROFILE
  69.     echo "LANGUAGE=C" >>$ROOTPROFILE
  70. fi
  71.  
  72. if [ "$LOCALE" != C ]; then
  73.     log-output -t localechooser chroot /target /usr/sbin/locale-gen "$LOCALE" || true
  74. fi
  75. if [ "$EXTRAS" ]; then
  76.     log-output -t localechooser chroot /target /usr/sbin/locale-gen $EXTRAS || true
  77. fi
  78.  
  79. exit 0
  80.